package cinvestav.adviseme.bean;

import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

import org.springframework.security.context.SecurityContextHolder;

import cinvestav.adviseme.controller.ILugarAgregadoController;
import cinvestav.adviseme.controller.LugarAgregadoController;
import cinvestav.adviseme.datamodel.Lugar;
import cinvestav.adviseme.datamodel.LugarAgregado;
import cinvestav.adviseme.datamodel.Persona;
import cinvestav.adviseme.util.DBException;

public class PrincipalContentBean {
	
	protected ILugarAgregadoController lugarAgregadoController;
	protected List<LugarAgregado> lugares;
	private static Logger log = Logger.getLogger(PrincipalContentBean.class
			.getName());

	public PrincipalContentBean() throws DBException {
		lugarAgregadoController = new LugarAgregadoController();
		lugares = new LinkedList<LugarAgregado>();
	}
	
	public ILugarAgregadoController getLugarAgregadoController() {
		return lugarAgregadoController;
	}

	public void setLugarAgregadoController(
			ILugarAgregadoController lugarAgregadoController) {
		this.lugarAgregadoController = lugarAgregadoController;
		init();
	}

	public List<LugarAgregado> getLugares() {
		return lugares;
	}

	public void setLugares(List<LugarAgregado> lugares) {
		this.lugares = lugares;
	}

	private void init(){
		try {
			FacesContext context = FacesContext.getCurrentInstance();
			HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
			String serverURL = request.getRequestURL().toString();
			serverURL = serverURL.substring(0, serverURL.lastIndexOf(request.getServletPath()));
			
			log.log(Level.INFO,"SERVER URL="+serverURL);
			
			String userName = SecurityContextHolder.getContext().getAuthentication().getName();
			if(userName!=null){
				String userID = userName.substring(userName.lastIndexOf("@")+1);
				Integer id = Integer.parseInt(userID);
				
				Persona persona = new Persona();
				persona.setId(id);
				lugares = lugarAgregadoController.getAll(persona);
				for(LugarAgregado l:lugares){
					l.getLugar().setUrlPrincipal(serverURL+l.getLugar().getUrlPrincipal());
				}
			}
		} catch (DBException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	

}
